NSURLConnection
iOS 异步加载网络数据主要使用的 API 是 sendAsynchronousRequest,它是一个类型方法,使用方法如下:
  | 
  | 
在这里,sendAsynchronousRequest 的几个传入值的意义如下:
| 形参名 | 作用 | 传入值 | 
|---|---|---|
| request | 网络请求的具体链接 | NSURLRequest实例 | 
| queue | 新建队列 | NSOperationQueue实例 | 
| handler | 请求完成的通知 | 函数 | 
其中 handler 是一个尾随闭包,它的使用方法如下:
| 形参名 | 作用 | 传入值 | 
|---|---|---|
| NSURLResponse? | 网络请求返回的HTTP协议头 | 和当前类型一致的属性 | 
| NSData? | 网络请求返回的数据 | 和当前类型一致的属性 | 
| NSError? | 网络请求可能发生的错误 | 和当前类型一致的属性 | 
NSURLSession
值得注意的是,iOS9 以后,NSURLConnection 通讯方式全面被 NSURLSession 取代,因此上面的方法在 iOS9 以上的版本中会有提醒,NSURLConnection 的使用方法如下:
  | 
  | 
它的形参和 sendAsynchronousRequest 基本一致,在此就不再赘述,NSURLSession 默认具有开线程的能力,所以也就不需要 NSOperationQueue 实例了。